const newDeclare = {
  state: {
    baseId: '', //
    baseName: '', // 作品名称
    fileIds: [],
    fileList: [],
    oneTypeId: '1', // 一级类型1：技术进步奖,2：节目质量奖
    prizeTypeId: '', // 奖项类型ID
    proTech: {
      baseId: '', // 基表ID
      beTime: '', // 项目起止时间
      callEmail: '', // 联系人E-MAIL
      callFax: '', // 联系人传真
      callName: '', // 联系人姓名
      callPhone: '', // 联系人手机
      callTel: '', // 联系人电话
      content: '', // 项目详细内容
      deptName: '', // 完成单位
      grade:'',// 奖项等级
      domain: '', // 项目涉及的领域
      doneUsers: '', // 主要完成人
      isOpen: '', // 项目内容可否公布
      jjxyhshxy: '', // 经济效益和社会效益
      jspjzm: '', // 技术评价证明及国家发律法规要求行业审批文件目录
      lxbj: '', // 立项背景
      proDoneOrgList: [
        // 主要完成单位情况信息
        {
          address: '', //通讯地址
          baseId: '', //项目ID
          callName: '', //联系人
          createBy: '', //
          createTime: '', //
          doneOrgId: '', //
          email: '', // 用户邮箱
          nature: '', //单位性质
          num: '', //第几完成单位
          orgName: '', //单位名称
          params: {},
          phone: '', //手机号码
          postal: '', //邮政编码
          proContributione: '', //技术开发和应用的主要贡献
          remark: '', //
          searchValue: '', //
          tel: '', //联系电话
        },
      ],
      proDoneUsersList: [
        //主要完成人情况信息
        {
          academic: '', // 学位
          address: '', // 通讯地址
          age: '', // 年龄
          baseId: '', // 项目ID
          doneUsersId: '', //
          education: '', //文化程度
          email: '', //用户邮箱
          fax: '', //传真
          graduation: '', //毕业时间
          nation: '', //民族
          num: '', //第几完成人
          phone: '', //手机号码
          positional: '', //职务、职称
          postal: '', //邮政编码
          prizeHis: '', //曾获奖励及荣誉称号情况
          proContributione: '', //本人对项目技术创造性贡献
          proTime: '', //参加本项目的起止时间
          school: '', //毕业学校
          sex: '', //用户性别 字典值：sys_user_sex
          speciality: '', //专业、专长
          tel: '', //联系电话
          userName: '', //用户账号
          workUnit: '', //工作单位
        },
      ],
      proIntellectualPropertyEvidenceList: [
        // 知识产权证明信息
        {
          appId: '', // 申请号
          authId: '', // 授权号
          baseId: '', // 项目ID
          countries: '', // 国别
          eviId: '', //
          eviName: '', // 授权（申请）项目名称
          eviType: '', //
        },
      ],
      proPrizeHisList: [
        // 本项目曾获科技奖励情况信息
        {
          baseId: '', // 项目ID
          deptName: '', // 授奖部门（单位）
          getTime: '', //获奖时间
          prizeLevel: '', // 奖项等级
          prizeName: '', // 奖项名称
          remark: '', //备注
        },
      ],
      proUseOrgList: [
        // 项目应用单位对象
        {
          baseId: '', // 项目ID
          beginTime: '', // 应用起始时间
          callNamePhone: '', // 应用单位联系人及电话
          money: '', // 使用本项目产生的经济效益（元）
          orgName: '', // 单位名称
          prove: '', // 已提交应用证明
          useOrgId: '', //
        },
      ],
      repPrizeType: '', // 申报奖项类别
      secretLevel: '', // 项目密级
      source: '', // 任务来源
      synopsis: '', // 项目简介
      techId: '', //
      tljsbj: '', // 与当前国内外同类技术比较
      xxjsnr: '', // 详细记述内容
      yyqk: '', // 应用情况
      zyjscxd: '', // 主要技术创新点
    },
  },
  mutations: {
    // 修改单个值
    NEW_SET_DECLARE_ITEM(state, option) {
      state[option.ajaxStr] = option.value
    },
    // 整体覆盖
    NEW_SET_DECLARE_ALL(state, option) {
      Object.keys(state).forEach((key) => {
        option[key] && (state[key] = option[key])
        Object.keys(state.proTech).forEach(
          (k) => (state.proTech[k] = option[k])
        )
      })
    },
    // 重置
    NEW_RESET_STATE(state) {
      Object.keys(state).forEach((i) => {
        typeof state[i] !== 'object' && (state[i] = '')
        Array.isArray(state[i]) &&
          state[i].forEach((j, k) => (state[i][k] = ''))
      })
    },
    // 赋值baseId
    NEW_SET_BASE_ID(state, option) {
      state.baseId = option
      Object.keys(state).forEach((i) => {
        typeof state[i] == 'object' &&
          'baseId' in state[i] &&
          (state[i].baseId = option)
        Array.isArray(state[i]) &&
          state[i].forEach((j, k) => (state[i][k].baseId = option))
      })
    },
  },
}

export default newDeclare
